home *** CD-ROM | disk | FTP | other *** search
/ Network CD 2 / Network CD - Volume 2.iso / programs / internet / tcp / amitcp / amitcp-src-22.lha / AmiTCP-2.2 / src / appl / ls / ls.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-17  |  2.8 KB  |  113 lines

  1. /* $Id: ls.h,v 1.7 93/09/17 07:54:23 ppessi Exp $
  2.  * 
  3.  * ls. - ls declarations and prototypes
  4.  *
  5.  * Copyright © 1991, 1993 Pekka Pessi. All rights reserved.
  6.  *
  7.  * Created      : Tue Jan 14 16:24:22 1992 ppessi
  8.  * Last modified: Fri Sep 17 07:15:25 1993 ppessi
  9.  */
  10.  
  11. #include <dos/dos.h>
  12. #include <dos/exall.h>
  13.  
  14. #define ExAllData myExAllData
  15.  
  16. /*
  17.  * An extended ExAllData structure 
  18.  */
  19. struct ExAllData {
  20.     struct ExAllData *ed_Next;
  21.     UBYTE  *ed_Name;
  22.     LONG    ed_Type;
  23.     ULONG    ed_Size;
  24.     ULONG    ed_Prot;
  25.     ULONG    ed_Days;
  26.     ULONG    ed_Mins;
  27.     ULONG    ed_Ticks;
  28.     UBYTE  *ed_Comment;    /* strings will be after last used field */
  29.     UWORD    ed_OwnerUID;    /* new for V39 */
  30.     UWORD    ed_OwnerGID;
  31.     /* NONSTANDARD */
  32.     ULONG   ed_Key;        /* # of key block, used for -i */
  33.     ULONG   ed_Blocks;    /* # of used blocks, used for -s */
  34. };
  35.  
  36. #ifndef ED_OWNER
  37. #define ED_OWNER (ED_COMMENT+1)
  38. #endif
  39. #define ED_BLK   (ED_COMMENT+2)
  40.  
  41. #include <clib/dos_protos.h>
  42. #include <clib/exec_protos.h>
  43.  
  44. struct ExAllList {
  45.   struct ExAllList * El_Next;
  46.   int                El_Number;    
  47.   struct ExAllData   El_Data;
  48. };
  49.  
  50. struct options {
  51.   unsigned int    longformat : 1;        /* -l */
  52.   unsigned int  group : 1 ;        /* -g */
  53.   unsigned int  sort_time : 1;        /* -t */
  54.   unsigned int  all : 1;        /* -a */ 
  55.   unsigned int  dotted : 1;        /* -A */ 
  56.   unsigned int  kilos : 1;        /* -s */
  57.   unsigned int  dir : 1;        /* -d */
  58.   unsigned int  reverse : 1;        /* -r */
  59.   unsigned int  inode : 1;        /* -i */
  60.   unsigned int  fast : 1;        /* -f */
  61.   unsigned int  filetype : 1;        /* -F */
  62.   unsigned int  symbolic : 1;        /* -L */
  63.   unsigned int  recursion : 1;        /* -R */
  64.   unsigned int    multicolumn : 1;    /* -C */
  65.   unsigned int    singlecolumn : 1;    /* -1 */
  66.   unsigned int    nongraph : 1;        /* -q */
  67.   unsigned int  pathname : 1;            /* -p */
  68. };
  69.  
  70. extern BPTR Stdin;
  71. extern BPTR Stdout;
  72. extern BPTR Stderr;
  73.  
  74. #define EXDATASIZE 4096        /* size for exall buffer */
  75. #define EXLISTSIZE (EXDATASIZE + sizeof(struct ExAllList))
  76. #define MYNOMEMERR -2
  77.  
  78. #define MAXFILENAMELEN 32
  79. #define MAXPATHLEN 1024
  80.  
  81. __inline static int max(int a, int b) { return a > b ? a : b; }
  82.  
  83. /* ls.c */
  84. extern struct options options;
  85.  
  86. /* short.c */
  87. extern void doprint(char *, const struct ExAllList *, struct options);
  88.  
  89. /* list.c */
  90. extern void bfree(volatile struct ExAllList *);
  91. extern struct ExAllList *listdir(char *name, struct options );
  92. extern struct ExAllList *listpatterns(int patc, char **patv, struct options);
  93.  
  94. /* sort.c */
  95. extern void quick_sort(void *slots[], int size, int(*compare)(void *, void *));
  96.  
  97. /* user.c */
  98. UBYTE *user(UWORD);
  99. UBYTE *group(UWORD);
  100.  
  101. #ifdef __SASC
  102. #define INLINE __inline
  103. extern struct Library *DOSBase;
  104. #include <pragmas/dos_pragmas.h>
  105. extern struct ExecBase *SysBase;
  106. #include <pragmas/exec_sysbase_pragmas.h>
  107. extern struct Library *UtilityBase;
  108. #include <pragmas/utility_pragmas.h>
  109. #endif
  110. #ifdef __GNUC__
  111. #define INLINE __inline__
  112. #endif
  113.